基本資料型態是 boolean、char、byte、short、int、long、float、double,這8種。
參考資料型態是『除了那8種以外的所有資料型態』
如:
boolean 只有兩個值,true 或 false。使用此資料型態可以簡單的表示真(true)或假(false)的狀態,
方便做條件判斷使用。boolean型態表示著一位元的0或1的資料,但他的型態大小沒有被精確的定義。
用來儲存字元,一個單位的字元佔16-bits大小,Java的字元採用Unicode編碼(前128字元與ASCII相容)。表示範圍為'\u0000' (0) 到 '\uffff' (65,535),在Java中一個英文字元或符號或中文字元或XX文字元都是一個char,而字元的本質其實就是數字,所以也有與整數型態相同的特性,可以做算數運算。以下有3種表示式:
用來儲存整數,有正負號。依所佔的記憶體大小可以在細分成位元組(byte, 8-bits)、短整數(short, 16-bits)、整數(int, 32-bits)與長整數(long, 64-bits),在記憶體佔有越多的空間所可以表示的範圍也就越大。
int 是最常使用的整數類型,通常情況下,直接給出一個整數值預設就是int類型,以下有兩種情形必須指出:
整數值有4種表示方式:十進位、二進位(0b or 0B)、八進位(0開頭)、十六進位(0x or 0X 10~15分別以a~f表示不分大小寫)
只有整數的運算很明顯不能滿足現實的需求,浮點數代表著有小數點的數。依所佔記憶體大小分為單精度浮點數(float, 32-bits)與雙精度浮點數(double, 64-bits)
Java 有浮點數有兩種表示形式:
浮點數類型預設是double類型 希望當成float 處理要在浮點數後緊跟 f 或 F ,當然也可以在浮點數後加上d 或D 指定是double類型 ,但通常沒必要
小提醒:
在java 7 之後 為了解決數值位數特別多時,會看得眼花瞭亂的問題,數值之間可以用底線分隔,而不是用逗號喔!
如:double pi = 3.14_15_92_65_36;
有兩種轉換方式: 自動類型轉換和 強制類型轉換
自動類型轉換
數值範圍小的向數值範圍大的轉換,也叫做「擴大轉換」。
圖1:
箭頭左邊的類型可以自動類型轉換成箭頭右邊的數值類型
public class AutoConversion {
public static void main(String[] args) {
int a = 6;
//int 類型可以自動轉換為float類型
float f = a;
//下面將輸出6.0
System.out.println( f);
byte b = 9;
//下面程式將出錯,byte類型不能自動類型轉換成char
char c = b;
double d = b;
//下面將輸出9.0
System.out.println(d);
}
}
強制類型轉換
如果要將圖1右邊的類型轉成左邊的類型必須進行強制類型轉換
語法格式:
(欲轉換的資料型態)變數名稱 ;
進行強制類型轉換時,就像是把一個大瓶子裡的水倒入一個小瓶子,如果大瓶子水不多就還好,如果大瓶子裡的水很多,將溢出來,從而造成資料遺失,這種轉換也叫做「縮小轉換」
public class NarrowConversion {
public static void main(String[] args) {
int i = 233;
//強制把一個int類型的值轉換成byte類型的值
byte b = (byte)i;
//將輸出-23
System.out.println(b);
}
}
int value ;
value = 10;
記憶體配置圖:
說明一下上面兩行程式碼是怎麼運行的
程式剛開始執行,記憶體沒有變數,
int value;
執行的時候會在stack區切一塊int大小的空間,Java會初始化為0 (區域變數local variable不會自動初始化,要使用該變數前需要指定其值),
value = 10;
指定整數10給變數value。
今天就先介紹到基本型態,明天繼續介紹參考型態囉!